package it.unisa.unibox.junit.beans;

import it.unisa.unibox.beans.Account;
import it.unisa.unibox.beans.AreaScientifica;
import it.unisa.unibox.beans.Dipartimento;
import it.unisa.unibox.beans.Ricercatore;
import junit.framework.TestCase;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class RicercatoreTest extends TestCase {

	private Account acc;
	private Ricercatore ric;
	private Dipartimento dip;
	private AreaScientifica area;

	@Override
	@Before
	public void setUp() {
		try {
			dip= new Dipartimento(3, "Farmacia");
			area= new AreaScientifica(4, "Farmacia Area", 12345);
			acc= new Account(999, "Mario80", "passDiMario", 2);
			ric= new Ricercatore(333 ,acc, "Mariotto", "IlRicercatore", "mrt45ric95jrbs83", "M", "mari8@uni.it", "Milano", dip, area, 0512100001, 1, "1945-10-09", "1970-02-11");
		} catch (Exception e) {
			fail();
		}
	}

	@Override
	@After
	public void tearDown() {
		acc=null;
		ric=null;
		System.gc();	
	}

	@Test
	public void testGetAccount() {
		assertEquals(ric.getAccount().getUsername(),"Mario80");
		
	}
	
	@Test
	public void testGetId() {
		assertEquals(ric.getId(),333);
	}
	
	@Test
	public void testGetNome() {
		assertEquals(ric.getNome(),"Mariotto");
	}

	@Test
	public void testGetCognome() {
		assertEquals(ric.getCognome(),"IlRicercatore");
	}

	@Test
	public void testGetCodFisc() {
		assertEquals(ric.getCodFisc(), "mrt45ric95jrbs83");
	}

	@Test
	public void testGetSesso() {
		assertEquals(ric.getSesso(), "M");
	}

	@Test
	public void testGetEmail() {
		assertEquals(ric.getEmail(), "mari8@uni.it");
	}

	@Test
	public void testGetCittaNascita() {
		assertEquals(ric.getCittaNascita(), "Milano");
	}

	@Test
	public void testGetDipartimento() {
		assertEquals(ric.getDipartimento().getNome(), "Farmacia");
	}

	@Test
	public void testGetAreaScientifica() {
		assertEquals(ric.getAreaScientifica().getNome(), "Farmacia Area");
	}

	@Test
	public void testGetMatricola() {
		assertEquals(ric.getMatricola(), 0512100001);
	}

	@Test
	public void testGetRuolo() {
		assertEquals(ric.getRuolo(), 1);
	}

	@Test
	public void testGetDataNascita() {
		assertEquals(ric.getDataNascita(), "1945-10-09");
	}

	@Test
	public void testGetDataInizioServizio() {
		assertEquals(ric.getDataInizioServizio(), "1970-02-11");
	}
}